一道MISC带你走入双图隐写 |
您所在的位置:网站首页 › ctf 杂项 图片 › 一道MISC带你走入双图隐写 |
前言 隐写术是什么?顾名思义是隐藏信息书写的技术,是信息隐藏技术的一种。 隐写术中有一个很经典的模型,叫做Simmons模型,也是常说的囚犯问题。 Alice 和 Bob 分属两个牢房,为了合谋越狱需要进行通信,而通信的信件必须经过中间看守人Wendy的审阅。Wendy可以阅读信件的内容,而且阅读后可以决定是否传送这封信件。这时,对信息进行加密不可取,因为看守人会阅读传送的信息的内容,加密后的信息大概率会引起看守人的怀疑,看守人不但可以选择不发送,还可以以此为依据对两名犯人进行调查。 因此需要一种对通信过程隐藏的手段 ,即隐写术。简单概括,隐写术试图隐藏的是通信事件本身。 推荐一本我在某邮图书馆翻到的书 《数据隐藏技术解密》——[美]Michael Raggo 一道双图隐写的CTF题做题之前,我对一些常见文件格式分析和常用工具进行了一些了解,这篇文章不进行赘述了,有兴趣的可以自己了解一下,或者我以后闲下来可能会整理出来??这里只推荐一篇 png文件结构的博客 题目图片链接:https://pan.baidu.com/s/1Ztx0o_-V8XhzBzvSSothtg 提取码:qdtf 先用Binwalk分析文件 发现藏了两张图片,用foremost分离 在kali中使用compare比较两个图片并生成一张比较图会发现左下角有一条红线,红线处就是存在不同的地方,这种情况一般是双图像运算。 compare生成比较文件命令 compare 1.png 2.png output.png 使用Stegsolve打开一个图片,然后用Analyse选项的Image Combiner功能再添加一个图片进行异或操作,这样会把两个图片相同的部分变为0,不同的部分保留。然后保存异或运算后生成的bmp图片,用WinHex打开这个图片会发现这个文件中大部分都为0,不为0的部分就是两张图片不相同的区间,也就是之前红线处图片的差异。 记录不为0部分的偏移量区间,把原来分离出来的两个图片文用画图板另存为bmp格式,因为XOR异或出来的图片格式为BMP需要使用相同格式的图片寻找差异处。 用winhex打开两个图片,分别找到对应的偏移量区间如下 发现其中的差异是第二张图片中一些字节被替换成了00或01,找一下规律发现是每隔两个字节替换一次(每三个Hex的第一个Hex都是00或01,其实每三个Hex代表一个RGB通道,也就是信息隐藏在R通道中),分析这些0和1连接到一起可能会产生二进制信息,但是又不能挨个打出来吧。先把这一段十六进制数据复制下来,找到规律利用python切片连接这些01。 这里是将一串binary写入R通道中的时候,0变成了00, 1变成了01。 得到的01数据长度len()一下发现是8的倍数,这时可以直接使用JPK工具格式化二进制数据并转换成Ascii码 得到flag 也可以自己写一个脚本来处理这串01序列 1.py 12345678import sysstr="0100100101010011010001110111101101000101001101000111001101011001010111110101001101110100010001010110011100110100011011100011000001100111010100100011010001110000010010000111100101111101"i = 0while i |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |